取值与单位
长度值与单位
长度取值
| 长度取值 | 版本 | 描述 | 
|---|---|---|
<length> | 
CSS2 | <number>接长度单位 | 
1  | <number>接长度单位。  | 
长度单位
文本相对长度单位
| 长度单位 | 版本 | 描述 | 
|---|---|---|
| em | CSS1 | 相对于当前对象内文本的字体尺寸 | 
| ex | CSS1 | 相对于字符“x”的高度。通常为字体高度的一半 | 
| ch | CSS3 | 数字“0”的宽度 | 
| rem | CSS3 | 相对于根元素(即html元素)font-size计算值的倍数 | 
| % | CSS1 | 百分比 | 
视口相对长度单位
| 长度单位 | 版本 | 描述 | 
|---|---|---|
| vw | CSS3 | 相对于视口的宽度。视口被均分为100单位的vw | 
| vh | CSS3 | 相对于视口的高度。视口被均分为100单位的vh | 
| vmax | CSS3 | 相对于视口的宽度或高度,总是相对于大的那个。视口的宽度或高度被均分为100单位的vmax | 
| vmin | CSS3 | 相对于视口的宽度或高度,总是相对于小的那个。视口的宽度或高度被均分为100单位的vmin | 
绝对长度单位
| 长度单位 | 版本 | 描述 | 
|---|---|---|
| cm | CSS1 | 厘米 | 
| mm | CSS1 | 毫米 | 
| q | CSS1 | 1/4毫米(quarter-millimeters); 1q = 0.25mm | 
| in | CSS1 | 英寸(inches); 1in = 2.54cm | 
| pt | CSS1 | 点(points); 1pt = 1/72in | 
| pc | CSS1 | 派卡(picas); 1pc = 12pt | 
| px | CSS1 | 像素(pixels); 1px = 1/96in | 
px 说是绝对长度单位,这是对于单个设备而言的。px 与设备显示屏的分辨率有关。对于屏幕显示,通常是一个设备像素(点)的显示。
浏览器支持
| 长度单位 | Chrome | IE | Firefox | Safari | Opera | 
|---|---|---|---|---|---|
| em, ex, %, cm, mm, q, in, pt, pc, px | 1.0 | 3.0 | 1.0 | 1.0 | 3.5 | 
| ch | 27.0 | 9.0 | 1.0 | 7.0 | 20.0 | 
| rem | 4.0 | 9.0 | 3.6 | 4.1 | 11.6 | 
| vh, vw | 20.0 | 9.0 | 19.0 | 6.0 | 20.0 | 
| vmin | 20.0 | 9.0* | 19.0 | 6.0 | 20.0 | 
| vmax | 26.0 | 不支持 | 19.0 | 不支持 | 20.0 | 
注意: IE 9.0 是通过不标准的名称 vm 来支持 vmin 的。
常用相对长度
相对长度单位指定了一个长度相对于另一个长度的属性。对于不同的设备,相对长度更适用。
| 单位 | 描述 | 
|---|---|
| em | 相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸。比如如果当前行内文本的字体尺寸为 16px,2em === 32px | 
| rem | 相对于根元素(即html元素)font-size | 
| vw | viewpoint width,视窗宽度,1vw = 视窗宽度的 1% | 
| vh | viewpoint height,视窗高度,1vh = 视窗高度的1% | 
| vmin | 相对于 vw 和 vh 中较小的那个 | 
| vmax | 相对于 vw 和 vh 中较大的那个 | 
| % | 百分比。关键考虑到底相对什么的百分比 | 
em 与 rem 的区别
都是相对大小。em 相对的是从当前向上查询已定义的 px,;而 rem 相对的永远是相对于根元素(即html元素)font-size。
1  | <!-- 根元素 (html root) 的 font-size 为 50px -->  | 
vw、vh、vmin、vmax
这里的 viewpoint 指浏览器内部的可视区域
viewpoint width,视窗宽度,是指 window.innerWidth
viewpoint height,视窗高度,是指 window.innerHeight
10vw = window.innerWidth * 10 / 100
10vh = window.innerHeight * 10 / 100
浏览器内部宽度 window.innerWidth,不包括 scrollbars, toolbars 等
浏览器整体宽度 window.outerWidth,包括 scrollbars, toolbars 等
显示器宽度 window.screen.width,固定不变
window.screen.width >= window.outerWidth > window.innerWidth
有个奇怪的地方,在 chrome 的 device toolbar 调试时,window.innerWidth 最小是 980
% 百分比
关键考虑到底相对什么的百分比
1  | <html>  | 
width/height 的百分比
子元素的 width/height 的百分比是相对于父元素的 width/height 的百分比。
margin 的百分比
子元素的 margin 的百分比是相对于父元素的 width (只是 content 部分)的百分比
padding 的百分比
子元素的 padding 的百分比是相对于父元素的 width (只是 content 部分)的百分比
角度值与单位
| 角度取值 | 版本 | 描述 | 
|---|---|---|
<angel> | 
CSS3 | <number>接角度单位 | 
角度单位
文本相对长度单位
| 角度单位 | 版本 | 描述 | 
|---|---|---|
| deg | CSS3 | 度(Degrees) | 
| grad | CSS3 | 梯度(Gradians) | 
| rad | CSS3 | 弧度(Radians) | 
| turn | CSS3 | 转、圈(Turns) | 
deg
deg 度(Degress)。一个圆共360度
90deg = (90/360)*400 grad ≈ (90/360)*2π rad = (90/360) turn
grad
梯度(Gradians)。一个圆共400梯度
rad
弧度(Radians)。一个圆共2π弧度
π 为 Math.PI
turn
转、圈(Turns)。一个圆共1圈
时间取值与单位
| 时间取值 | 版本 | 描述 | 
|---|---|---|
<time> | 
CSS3 | <number>接时间单位 | 
时间值不允许有负值。
时间单位
| 时间单位 | 版本 | 描述 | 
|---|---|---|
| s | CSS3 | 秒 | 
| ms | CSS3 | 毫秒 | 
1s = 1000ms
颜色取值
| 颜色取值 | 版本 | 描述 | 
|---|---|---|
| ColorName | CSS1 | 用颜色名称来指定颜色。包括基本颜色关键字、系统颜色、SVG颜色关键字等 | 
| HEX | CSS1 | 十六进制记法。语法如:#rrggbb或#rgb | 
| RGB | CSS2 | rgb记法 | 
| RGBA | CSS3 | rgba记法 | 
| HSL | CSS3 | hsl记法 | 
| HSLA | CSS3 | hsla记法 | 
| transparent | CSS1/CSS3 | 全透明 | 
| currentColor | CSS3 | 当前颜色 | 
- color 的部分关键字可能不被某些浏览器支持;
 - hex。#RRGGBB。
- RR:红色值,十六进制正整数
 - GG:绿色值,十六进制正整数
 - BB:蓝色值,十六进制正整数
 - 取值范围:00 - FF。必须是两位数。对于只有一位的,应在前面补零
 
 - RGB(R,G,B)。
- R:红色值,正整数 | 百分数
 - G:绿色值,正整数 | 百分数
 - B:蓝色值,正整数 | 百分数
 - 正整数值的取值范围为:0 - 255。百分数值的取值范围为:0.0% - 100.0%。超出范围的数值将被截至其最接近的取值极限
 
 - RGBA(R,G,B,A)。
- A:Alpha透明度。取值0~1之间。IE9+
 - 对于IE6-8,可以使用滤镜filter处理
 
 - HSL(H,S,L)。
- H:Hue(色调)。0(或360)表示红色,120表示绿色,240表示蓝色,也可取其他数值来指定颜色。取值为:0 - 360。
 - S:Saturation(饱和度)。取值为:0.0% - 100.0%
 - L:Lightness(亮度)。取值为:0.0% - 100.0%
 
 - HSLA(H,S,L,A)
- A:Alpha透明度。取值0~1之间。
 
 - transparent 是全透明黑色(black)的速记法,即一个类似rgba(0,0,0,0)这样的值。
- 在CSS1中,transparent被用来作为background-color的一个参数值,用于表示背景透明。
 - 在CSS2中,border-color也开始接受transparent作为参数值,《Open eBook(tm) Publication Structure 1.0.1》[OEB101]延伸到color也接受transparent作为参数值。
 - 在CSS3中,transparent被延伸到任何一个有color值的属性上。
 
 - currentColor是 color 属性的值,具体意思是指:currentColor关键字的使用值是 color 属性值的计算值。
1
2
3
4
5
6
7
8div {
border: 1px solid;
color: red;
}
/*
上述代码将会让div拥有一个红色的边框,这就解释了 border-color 属性的默认值是 color 属性的值;
如果将上述代码中的color属性定义删除,那么边框的颜色将取决于父元素的 color 计算值,因为 color 拥有继承性。
*/ 
文本取值
| 文本取值 | 版本 | 描述 | 
|---|---|---|
| inherit | CSS2.1 | 该值使得属性能够继承祖先设置 | 
| initial | CSS3 | 属性初始值 | 
| unset | CSS3 | 擦除属性申明 | 
<string> | 
CSS2 | 字符串(含转义字符串) | 
<url> | 
CSS2 | 在网页上提供一个资源地址。(图像,声频,视频或浏览器支持的其他任何资源) | 
<identifier> | 
CSS2 | 使用用户自定义标识名作为组件取值 | 
- inherit 可以让一个不具备继承特性的属性可以继承父元素
 - initial 重置某个属性为UA默认设置
 - 一个属性定义了unset值,如果该属性是默认继承属性,该值等同于inherit,如果该属性是非继承属性,该值等同于initial
 - 字符串可以由双引号或单引号包起来;转义字符串由 反斜杠
(\)开始,如:\',\"。content、font-family 等。 有引号和无引号都是正确的。background - 自定义标识。如 myIdentifier
1
2
3
4
5
6
7
8
9
10
11
12
13li {
animation: myIdentifier 3s linear;
}
@keyframes myIdentifier {
0% {
}
100% {
}
}